home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1992-12-29 | 522 b | 26 lines | [TEXT/MEDT] |
- IMPLEMENTATION MODULE RandomNumbers;
-
- IMPORT MathLib;
-
- VAR Z: LONGINT;
-
- PROCEDURE Uniform(): REAL;
- CONST a = 16807D; m = 2147483647D;
- q = m DIV a; r = m MOD a;
- VAR g: LONGINT;
- BEGIN g := a*(Z MOD q) - r*(Z DIV q);
- IF g > 0D THEN Z := g ELSE Z := g + m END;
- RETURN FLOAT(Z)*(1.0/FLOAT(m))
- END Uniform;
-
- PROCEDURE Exp(mu: REAL): REAL;
- BEGIN RETURN -MathLib.Ln(Uniform())/mu
- END Exp;
-
- PROCEDURE InitSeed(seed: LONGINT);
- BEGIN Z := seed
- END InitSeed;
-
- BEGIN Z := 1
- END RandomNumbers.
-